Group communication technologies on the Internet allow users with common interest to collaborate, share files, chat with one another, multicast audio and video for presentations and group meetings, and engage in multi-player gaming. Indeed, the ability for group formation in an ad hoc basis presents significant advantages in allowing users with common interests to gather in a virtual area or group that may be segregated from the general Internet population. The segregation facilitates useful discussion in collaboration among such like-minded individuals. Currently, however, most group communication and formation takes place in a server-centric environment wherein all communication flows to or through large central servers.
With the reemergence of peer-to-peer (P2P) technology, the current server-centric model of Internet communication is quickly being replaced. P2P technologies enable users to contact one another in a serverless environment, free from the constraints of server-based Internet communication. As with a server-centric environment, users form ad hoc groups for collaborating, sharing files, chatting, and gaming with one another. These groups, often referred to as clouds in the context of P2P networking, facilitate fast dissemination of common information throughout a distributed network of peers. However, unlike the server-centric environment, the P2P environment avoids bottlenecking and is more resilient to partial network disconnects.
P2P networking relies on the ability of every peer in the cloud to route messages to every other peer in the cloud. In mathematical terms the set of peers in the transitive closure of the cloud must be equal to the set of peers in the cloud itself. If this is not the case, then the cloud is “split.” A split divides a cloud into two or more partitions, where each partition is well formed, but communication among the partitions is inconsistent or disabled. Cloud-splits occur for a variety of reasons. The clouds may have started out independently and need to be merged. Or the clouds may have started out as one, but some fragment of the cloud became isolated from the rest of the cloud. Isolation may occur where a subset of peers in the cloud fails or when network failures prevent a subset of peers from communicating with each other.
There exists, therefore, a need in the art for a peer-to-peer cloud split detection and repair method that detects a cloud-split while balancing load on the network as the cloud grows, and quickly and efficiently merges the cloud partitions once detected.